package cn.fuxi2022.module.info.mapper;

import cn.fuxi2022.model.empty.applets.GroupStudentInfo;
import cn.fuxi2022.model.empty.count.DoughnutChart;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * @author admin
 * @description 针对表【group_student_info(社员详细信息表)】的数据库操作Mapper
 * @createDate 2022-09-24 20:46:12
 * @Entity cn.fuxi2022.auth.empty.GroupStudentInfo
 */
@Mapper
@SuppressWarnings("MybatisXMapperMethodInspection")  // 忽略错误：@MapKey is required
public interface GroupStudentInfoMapper extends BaseMapper<GroupStudentInfo> {

    /**
     * 统计当前社员的性别
     */
    List<DoughnutChart> countSexToMap();

    /**
     * 统计当前社员的学院
     */
    List<DoughnutChart> countCollegeToMap();

    /**
     * 截取学号字符串，判断数据库中的学生的年级
     * <p>
     * [{grade=20级, num=1}, {grade=21级, num=1}]
     */
    List<DoughnutChart> getStudentGradeCount();

    /**
     * 统计学生程度
     */
    List<DoughnutChart> getDegreeToMap();

    /**
     * 统计学习方向
     */
    List<DoughnutChart> getDirectionToMap();

    /**
     * 初步统计当前学生信息
     * 注意：阶段+1，阶段为1需要再次单独判断
     * <p>
     * 1572186468594569218	1305xxxxx8	morning_star	黄晓伦	4.0
     * 1572186468594569220	1760xxxxx6	    XXX        	黄同学	1.0
     */
    List<Map<String, Object>> getStudentInfoCount();

    /**
     * 获取当前系统的学生人数（包括未入社，登录未完善信息的....）
     */
    Integer getStudentCount();

    /**
     * 获取当前系统的已经完成入社，成为社团的学生人数
     */
    Integer getIsStudentCount();

    /**
     * 获取宿舍统计记录（已入社）
     */
    List<DoughnutChart> getdormToMap();

    /**
     * 获取简略的学生列表，供数据大屏使用
     */
    List<GroupStudentInfo> getStudentListForBigData();
}




